// 此类为React-Naitve与原生方法的交互

export namespace Native {
  let cacheDeviceId = '';
  export async function getDeviceId(): Promise<string> {
    if (cacheDeviceId) {
      return cacheDeviceId;
    }
    // return (cacheDeviceId = await DeviceInfo.getUniqueId());
    return '123';
  }

  export function getVersion() {
    // return DeviceInfo.getVersion();
    return '1.0.0';
  }

  export async function getBundle() {
    // return await NativeModules.HotUpdateManager.getBundle();
    return '1.0.0';
  }

  export const DuomSaasId = 'duom';

  /**
   * 将环境变量传给native
   * @param info
   */
  export const setNativeEnv = (env: string) => {
    // NativeModules.DuomCommonLibModule.setEnv(env);
  };

  /**
   * 播放器横/竖屏 iOS only
   */
  export const setPlayerFullScreen = (fullScreen: boolean) => {
    // if (Platform.OS === 'ios') {
    //   NativeModules.DuomCommonLibModule.setPlayerFullScreen(fullScreen);
    // }
  };

  /**
   * 调用原生媒体选择器，选择所有类型的资源
   * selected 已经选择的相册数据
   */
  //   export async function pickMedia(
  //     selected: TAlbumInfo[],
  //     haveDraft: boolean | undefined
  //   ) {
  //     const showGif = appPermits.gifhy_use_post;
  //     const params: TAlbumPickerConfig = {
  //       selectList: selected,
  //       selectType: 0,
  //       imgMaxNum: 15,
  //       videoMaxNum: 1,
  //       showGif,
  //     };
  //     //android需要这个字段在帖子有草稿之后加载图片编辑信息
  //     if (haveDraft) {
  //       params.business_type = 100;
  //     }
  //     const res = await NativeModules.DuomCommonLibModule.openAlbumPicker(params);
  //     res.forEach(item => {
  //       handleMediaPath(item);
  //     });
  //     console.log('pickMedia handleMediaPath res:', JSON.stringify(res));
  //     return res;
  //   }
  //   export async function pickImages(
  //     selected: TAlbumInfo[],
  //     imgMaxNum: number,
  //     haveDraft: boolean | undefined
  //   ) {
  //     const params: TAlbumPickerConfig = {
  //       selectList: selected,
  //       selectType: 1,
  //       imgMaxNum,
  //       videoMaxNum: undefined,
  //       scence: 'event',
  //     };
  //     //android需要这个字段在帖子有草稿之后加载图片编辑信息
  //     if (haveDraft) {
  //       params.business_type = 100;
  //     }
  //     const res = await NativeModules.DuomCommonLibModule.openAlbumPicker(params);
  //     res.forEach(item => {
  //       handleMediaPath(item);
  //     });
  //     console.log('pickMedia handleMediaPath res:', JSON.stringify(res));
  //     return res;
  //   }

  /**
   * 调用原生媒体选择器，选择指定的类型资源
   * selected 已经选择的相册数据
   * selectType 选择器执行类型
   * cropRatio 控制裁剪与编辑
   */
  //   export async function pickMediaType(
  //     selected: TAlbumInfo[],
  //     selectType: number,
  //     cropRatio: number,
  //     maxNum = 15
  //   ) {
  //     const res = await NativeModules.DuomCommonLibModule.openAlbumPicker({
  //       selectList: selected,
  //       selectType,
  //       imgMaxNum: maxNum,
  //       videoMaxNum: 1,
  //       cropRatio,
  //     });
  //     res.forEach(item => {
  //       handleMediaPath(item);
  //     });
  //     return res;
  //   }

  /**
   * 调起原生媒体选择器，选择一张图片并支持裁剪 0不裁剪
   * cropRatio 裁剪比例
   * selectType 相册选择器执行类型
   * 场景：适用于上传头像、封面图
   */
  //   export async function pickAnImg(cropRatio: number, selectType: number) {
  //     const res = await NativeModules.DuomCommonLibModule.openAlbumPicker({
  //       selectList: [],
  //       selectType,
  //       imgMaxNum: 1,
  //       videoMaxNum: 1,
  //       cropRatio,
  //     });
  //     if (Array.isArray(res) && res.length > 0) {
  //       const item = res[0];
  //       handleMediaPath(item);
  //       return item;
  //     }
  //     return undefined;
  //   }

  /**
   * 清理媒体缓存
   */
  export function cleanMediaCache() {
    // NativeModules.DuomCommonLibModule.clearCompress();
  }

  /**
   * 调起原生资源选择器，去编辑
   *
   */
  //   export const openPhotoEdit = async (data: TalbumPickerEditConfig) => {
  //     const showGif = appPermits.gifhy_use_post;
  //     const res = await NativeModules.DuomCommonLibModule.openPhotoEdit({
  //       ...data,
  //       showGif,
  //     });
  //     res.forEach(item => {
  //       handleMediaPath(item);
  //     });
  //     return res;
  //   };
  /**
   * 将登录信息传给native
   * @param info
   */
  export const loginInfoShareToNative = (info: string) => {
    // NativeModules.DuomCommonLibModule.userLoginIM(info);
  };
  /**
   * 清除图片草稿箱
   */
  export function clearImgPickerCache() {
    // NativeModules.DuomCommonLibModule.clearImgPickerCache();
  }

  /**
   * 保存图片至相册
   */
  export async function saveToAlbum(selectList: any[]) {
    // return NativeModules.DuomCommonLibModule.saveToAlbum(selectList);
  }
  /**
   * 防截屏/录屏
   */
  export const preventScrenShot = (info?: string) => {
    // NativeModules.DuomCommonLibModule.preventScreenShot(info);
    // NativeModules.DuomCommonLibModule.clearScreenshot();
  };

  export function keepAwake() {
    // NativeModules.DuomCommonLibModule.preventLockScreen();
  }

  /**
   * 使手机震动
   */
  export function triggerVibration(lv: 0 | 1 | 2 = 1) {
    // const type = ['impactLight', 'impactMedium', 'impactHeavy'][lv]!;
    // ReactNativeHapticFeedback.trigger(type as HapticFeedbackTypes, {
    //   enableVibrateFallback: true,
    //   ignoreAndroidSystemSettings: false,
    // });
  }

  /**
   * 保存图片视频至相册
   * @param mediaParam
   * @returns
   */
  export async function saveMediaToAlbum(mediaParam: any) {
    // const res =
    //   await NativeModules.DuomCommonLibModule.saveMediaToAlbum(mediaParam);
    // return res;
  }

  /**
   * 设置屏幕亮度
   * @param boole YES  保持屏幕常亮 NO 关闭
   * @returns
   */
  export async function setDeviceSystemBrightness(value: string) {
    // if (Platform.OS === 'ios') {
    //   // iOS 值 0~1
    //   NativeModules.DuomCommonLibModule.setSystemBrightness?.(value);
    // } else {
    //   // android 值 0~255
    //   const numFloat = parseFloat(value);
    //   const num = numFloat > 0 ? numFloat * 255 : 0;
    //   NativeModules.DuomCommonLibModule.setSystemBrightness?.(num.toString());
    // }
  }
  /**
   * 获取屏幕亮度
   * @returns
   */
  export async function getDeviceSystemBrightness() {
    // return await NativeModules.DuomCommonLibModule.getSystemBrightness?.();
  }
}
